The requirement for a final ELSE
clause is defensive programming. The CASE
statement should always provide a value.
Noncompliant code example
CASE grade -- Noncompliant, can raise a CASE_NOT_FOUND exception.
WHEN 'A' THEN DBMS_OUTPUT.PUT_LINE('Excellent');
WHEN 'B' THEN DBMS_OUTPUT.PUT_LINE('Very Good');
END CASE;
Compliant solution
CASE grade
WHEN 'A' THEN DBMS_OUTPUT.PUT_LINE('Excellent');
WHEN 'B' THEN DBMS_OUTPUT.PUT_LINE('Very Good');
ELSE DBMS_OUTPUT.PUT_LINE('No such grade');
END CASE;